package com.ww.springboot.boot.baseTest.design.原型;

import com.ww.springboot.boot.baseTest.design.原型.cache.ShapeCache;
import com.ww.springboot.boot.baseTest.design.原型.son.su.Shape;

/**
 * 原型模式  创建对象消耗较大时使用   如果对象过大 则创建对象对堆空间消耗过大
 * 将对象缓存 需要对象时调用其clone方法
 *
 * 原型模式-》以现有对象为原型进行克隆
 */
public class Run {

    public static void main(String[] args) {
        ShapeCache.loadCache();

        Shape clonedShape = ShapeCache.getShape("1");
        System.out.println("Shape : " + clonedShape.getType());

        Shape clonedShape2 = ShapeCache.getShape("2");
        System.out.println("Shape : " + clonedShape2.getType());

        Shape clonedShape3 = ShapeCache.getShape("3");
        System.out.println("Shape : " + clonedShape3.getType());
    }
}